package sort;

import java.util.Vector;
public class Ascending implements Sortinterface 
{
 	Vector<Object>tempmap = new Vector<Object>();
 	String buffer[];
 	int starindex=1;
	public void setVector(Vector<Object> vector,int starindex)
	{
		this.tempmap = vector;
		this.starindex = starindex;
	}

	public void setbuffer(String[] buffer) 
	{
		this.buffer = buffer;
	}

	public void getResult() 
	{
		for(int i = starindex; i < buffer.length ; i++)
		{
			for(int j = starindex; j < buffer.length-1 ; j++)
			{	
				String splitbufferj[] = buffer[j].split("\t");
				String splitbufferj1[] = buffer[j+1].split("\t");
				for(int k=0;k<tempmap.size();k++)
				{
					//System.out.println(splitbufferj[Integer.parseInt(tempmap.get(k).toString())].trim().toLowerCase());
					String leftString = splitbufferj[Integer.parseInt(tempmap.get(k).toString())].trim().toLowerCase();
					String rightString = splitbufferj1[Integer.parseInt(tempmap.get(k).toString())].toLowerCase().trim();
					
					try 
					{
						double left = Double.parseDouble(leftString);
						double right = Double.parseDouble(rightString);
						if(left>right)
						{	
								String temp = buffer[j];
								buffer[j] = buffer[j+ 1];
								buffer[j + 1] = temp;
								break;
						}
						else if(left<right)
							break;
					}
					catch (NumberFormatException e) 
					{
						if(leftString.compareTo(rightString) > 0)
						{	
								String temp = buffer[j];
								buffer[j] = buffer[j+ 1];
								buffer[j + 1] = temp;
								break;
						}
						else if(leftString.compareTo(rightString)  < 0)
							break;
					}
				}
			}	
		}
	}

	public String[] getbuffer() 
	{	
		return buffer;
	}
	public static void main(String[] args) 
	{
		Vector<Object> vect = new Vector<Object>();
		vect.add("0");
		vect.add("1");
		vect.add("2");
		//vect.add("3");
	/*    String buffer2[]=new String[] {"id\tName",
										"1\t901",
										"1\t902",
										"3\t903",
									  };
	
/*	    String buffer2[]=new String[] {"id\ttid\tRate\tName",
				"1\t104\t301\t901",
				"1\t101\t302\t902",
				"3\t102\t303\t903",
				"4\t101\t304",
				"5\t103\t305",
				"6\t102\t306"										
					};*/
	 /*   String buffer2[]=new String[] {"id\tRate\tName",
				"1\t301\t901",
				"1\t302\t902",
				"3\t303\t903",
				"4\t304",
				"5\t305",
				"6\t306"										
					};*/
//	String[] buffer2={"ab","xb","tb","cb","bb"};
	     /*String[] buffer2={"mid\tpid\tPV\tVT\tRef\tFD\tTD",	
					"25\t9\t1\tno$\t0\t0000-00-00 00:00:00\t0000-00-00 00:00:00",	
					"25\t86\t5849\tno$\t46\t0000-00-00 00:00:00\t0000-00-00 00:00:00",	
					"25\t5645\t5891\tno$\t0\t0000-00-00 00:00:00\t0000-00-00 00:00:00",	
					"25\t13\t5949\tno$\t0\t0000-00-00 00:00:00\t0000-00-00 00:00:00",	
					"25\t5689\t5969\tno$\t0\t0000-00-00 00:00:00\t0000-00-00 00:00:00",	
					"25\t9\t1\tno$\t0\t0000-00-00 00:00:00\t0000-00-00 00:00:00",	
					"25\t31\t7272\tno$\t0000-00-00 00:00:00	",
					"25\t7314\t7343\tno$",	
					"25\t25\t25\t0\t0",	
					"25\t25\t25\t0\t0"};	*/
	    /* String[]buffer2={	"a	b	c	d",
	    		 			"d	c	a	b",
	     					"g	z	h	k",
	     					"e	v	d	l",
	     					"z	z	a	a" };*/
		/*String[]buffer2={"5\tb\t43\t21",
					"8\tc\t76\t43",
					"9\tz\t4\tk",
					"1\tv\t2\tl",
					"66\tz\t9\t8"};*/
		/*String[]buffer2={"5\tb\t43\t21",
					"8\tc\t76\t43",
					"9\tz\t4\tk",
					"1\tv\t2\tl",
				"66z\tz\t9\t8"};*/
		String[]buffer2={"0\tz",
				"0\ta",
				"0\te",
				"0\tw",
			"0\tj"};
		Ascending asc = new Ascending();
		asc.setbuffer(buffer2);
		asc.setVector(vect,0);
		asc.getResult(); 
		buffer2 = asc.getbuffer();
		for(int i=0;i<buffer2.length;i++)
			System.out.println(buffer2[i]);
	}


}
